
#ifndef __SEMADRV
#define __SEMADRV

#ifdef __DLL
#define PORTMODE  dllexport
#else
#define PORTMODE  dllimport
#endif

//! Define os modos de transferencia aceitos
enum TftpMode { fmASCII, fmBinary };


extern "C"
{
	void __declspec(PORTMODE) WINAPI xftpVersion(char *ver);

	int __declspec(PORTMODE) WINAPI xftpConnect(const char *host, short port, const char *user, const char *pass);
	void __declspec(PORTMODE) WINAPI xftpDisconnect(void);
	void __declspec(PORTMODE) WINAPI xftpAbort(void);

	void __declspec(PORTMODE) WINAPI xftpLastError(char *text);

	int __declspec(PORTMODE) WINAPI xftpChangeDir(const char *dir);
    int __declspec(PORTMODE) WINAPI xftpCurDir(char *dir);
	int __declspec(PORTMODE) WINAPI xftpCreateDir(const char *dir);
	int __declspec(PORTMODE) WINAPI xftpDeleteDir(const char *dir);

	int __declspec(PORTMODE) WINAPI xftpListDir(char *list, int size);

	int __declspec(PORTMODE) WINAPI xftpDelete(const char *file);
	int __declspec(PORTMODE) WINAPI xftpRename(const char *curName, const char *newName);

	int __declspec(PORTMODE) WINAPI xftpMode(const TftpMode mode);
	int __declspec(PORTMODE) WINAPI xftpPut(const char *local, const char *remote);
	int __declspec(PORTMODE) WINAPI xftpGet(const char *remote, const char *local);
}

#endif
